ArangoDB একটি শক্তিশালী ডেটাবেস ম্যানেজমেন্ট সিস্টেম যা ডেটার নিরাপত্তা নিশ্চিত করার জন্য বিভিন্ন সিকিউরিটি ফিচার প্রদান করে। এর মাধ্যমে ডেটা সংরক্ষণ, অ্যাক্সেস নিয়ন্ত্রণ, এবং এনক্রিপশন কার্যকরভাবে পরিচালনা করা যায়।
Example:
db._createUser("username", "password", {
roles: [
{ name: "dbAdmin", database: "myDatabase" }
]
});
সার্টিফিকেট কনফিগারেশন:
--ssl.keyfile /path/to/your/server.key
--ssl.cafile /path/to/your/ca.cert
Authentication নিশ্চিত করার জন্য --server.authentication
ফ্ল্যাগ ব্যবহার করুন:
--server.authentication true
Example:
--server.jwt-secret /path/to/your/jwt.secret
নির্দিষ্ট IP-র জন্য অ্যাক্সেস অনুমতি প্রদান:
--server.endpoint tcp://127.0.0.1:8529
ডেটাবেস কার্যকলাপ ট্র্যাক করতে লগিং সক্রিয় করুন:
--log.file /var/log/arangodb/audit.log
ArangoDB একটি সুরক্ষিত ডেটাবেস ম্যানেজমেন্ট সিস্টেম যা ডেটা অ্যাক্সেস এবং সংরক্ষণ নিরাপত্তা নিশ্চিত করতে উন্নত ফিচার প্রদান করে। Authentication, Authorization, Data Encryption এবং Audit Logging এর মতো বৈশিষ্ট্যগুলো ArangoDB-কে এন্টারপ্রাইজ-গ্রেড সিকিউরিটি নিশ্চিত করতে সাহায্য করে।
ArangoDB-তে Authentication এবং Authorization হল ডেটাবেসে সুরক্ষা নিশ্চিত করার দুটি গুরুত্বপূর্ণ প্রক্রিয়া। Authentication ব্যবহারকারীর পরিচয় যাচাই করে এবং Authorization নির্ধারণ করে যে একটি ব্যবহারকারী ডেটাবেসে কী কী অ্যাকশন সম্পাদন করতে পারে।
Authentication হল একটি প্রক্রিয়া যা নিশ্চিত করে যে একজন ব্যবহারকারী বৈধ এবং তাদের অ্যাক্সেস অনুমোদিত। ArangoDB-তে এটি সাধারণত Username এবং Password এর মাধ্যমে পরিচালিত হয়।
root
ArangoShell:
db._createUser("john_doe", "password123", { active: true });
arangodb --server.jwt-secret "your-secret-key"
Authorization হল একটি প্রক্রিয়া যা নির্ধারণ করে যে একজন ব্যবহারকারী ডেটাবেস, কালেকশন বা ডেটার উপর কী কী কার্যক্রম পরিচালনা করতে পারে।
ArangoDB-তে ব্যবহারকারীদের ডেটাবেস বা কালেকশনের উপর নির্দিষ্ট অধিকার দেওয়া যায়:
ArangoShell:
db._grantDatabase("john_doe", "myDatabase", "rw");
ACL এর মাধ্যমে নির্ধারণ করা হয় কোন ব্যবহারকারী কোন ডেটাবেস বা কালেকশনে কী ধরনের অধিকার পাবেন।
নিচের উদাহরণে একটি নতুন ব্যবহারকারী তৈরি করে তাদের নির্দিষ্ট ডেটাবেসে সীমিত অধিকার দেওয়া হয়েছে:
// নতুন ব্যবহারকারী তৈরি
db._createUser("jane_doe", "securePass", { active: true });
// ডেটাবেসে Read-only অধিকার প্রদান
db._grantDatabase("jane_doe", "testDB", "ro");
যদি ব্যবহারকারী তাদের অধিকার সীমার বাইরে কোনো অ্যাকশন করার চেষ্টা করেন, তাহলে ArangoDB একটি Unauthorized Access ত্রুটি প্রদর্শন করবে।
ArangoDB-তে Authentication ব্যবহারকারী যাচাই করে এবং Authorization ব্যবহারকারীর অধিকার নির্ধারণ করে। Web Interface বা ArangoShell ব্যবহার করে সহজেই নতুন ব্যবহারকারী তৈরি, তাদের অনুমতি সেটআপ, এবং অ্যাক্সেস নিয়ন্ত্রণ করা যায়। এই প্রক্রিয়া ডেটাবেস সুরক্ষার একটি শক্তিশালী স্তর প্রদান করে।
ArangoDB-তে User এবং Role Management একটি গুরুত্বপূর্ণ ফিচার, যা ডাটাবেসে অ্যাক্সেস নিয়ন্ত্রণ এবং নিরাপত্তা নিশ্চিত করে। এটি Authentication, Authorization, এবং Role-Based Access Control (RBAC) ব্যবস্থার মাধ্যমে বিভিন্ন ইউজারের জন্য ভিন্ন ভিন্ন অনুমতি কনফিগার করার সুযোগ দেয়।
ArangoDB-তে নতুন User তৈরি করতে arangosh
বা Web Interface ব্যবহার করা যায়।
require('@arangodb/users').save("username", "password");
ব্যাখ্যা:
username
: নতুন ইউজারের নাম।password
: ইউজারের পাসওয়ার্ড।প্রতিটি User-এর জন্য নির্দিষ্ট ডাটাবেস এবং Collection-এর উপর অ্যাক্সেস নিয়ন্ত্রণ করা যায়।
require('@arangodb/users').grantDatabase("username", "my_database", "rw");
ব্যাখ্যা:
"rw"
: Read-Write পারমিশন।"ro"
: Read-Only পারমিশন।ArangoDB-তে Role Management মূলত ডাটাবেস এবং Collection-এ অ্যাক্সেস কন্ট্রোল নিশ্চিত করার জন্য ব্যবহৃত হয়।
No Access
: কোনো অ্যাক্সেস নেই।Read-Only
: শুধুমাত্র ডেটা পড়া যাবে।Read-Write
: ডেটা পড়া এবং লেখা যাবে।require('@arangodb/users').grantDatabase("username", "_system", "rw");
_system
: সিস্টেম ডাটাবেস।require('@arangodb/users').grantCollection("username", "my_database", "my_collection", "ro");
ব্যাখ্যা:
ArangoDB-তে ইউজার লগইন করার সময় username এবং password দিয়ে প্রমাণীকরণ সম্পন্ন হয়।
LDAP সার্ভারের মাধ্যমে Authentication কনফিগার করা সম্ভব।
প্রত্যেক ইউজারের জন্য ডাটাবেস এবং Collection-এ নির্দিষ্ট Permission নির্ধারণ করা হয়।
ArangoDB-তে User এবং Role Management কার্যক্রম পর্যবেক্ষণ করার জন্য Audit Logs ব্যবহার করা হয়। এটি User কার্যক্রমের সম্পূর্ণ রেকর্ড প্রদান করে।
User এবং Role Management ArangoDB-এর একটি গুরুত্বপূর্ণ সিকিউরিটি ফিচার, যা ডাটাবেসে অ্যাক্সেস নিয়ন্ত্রণ এবং সুরক্ষা নিশ্চিত করে। এটি RBAC, Permission কনফিগারেশন, এবং Monitoring এর মাধ্যমে ডেটার নিরাপত্তা এবং কার্যক্ষমতা বৃদ্ধি করে।
Data Encryption ArangoDB-তে একটি গুরুত্বপূর্ণ নিরাপত্তা বৈশিষ্ট্য, যা ডেটা সুরক্ষিত রাখতে সাহায্য করে। এটি দুটি প্রধান ধাপে ডেটা এনক্রিপশন নিশ্চিত করে: In-transit এবং At-rest। এই পদ্ধতিগুলো ব্যবহার করে ডেটা সংরক্ষণ এবং স্থানান্তরের সময় অননুমোদিত অ্যাক্সেস প্রতিরোধ করা হয়।
In-transit Encryption ডেটা স্থানান্তরের সময় (যেমন ক্লায়েন্ট এবং সার্ভারের মধ্যে যোগাযোগ) সুরক্ষা প্রদান করে। ArangoDB TLS (Transport Layer Security) ব্যবহার করে এই এনক্রিপশন নিশ্চিত করে।
TLS সক্রিয় করা: ArangoDB-তে TLS সক্রিয় করতে সার্ভারের কনফিগারেশনে নিম্নলিখিত যুক্ত করুন:
--server.endpoint ssl://0.0.0.0:8529
--ssl.keyfile /path/to/your/server-key.pem
সার্টিফিকেট এবং কী ফাইল তৈরি করা: OpenSSL ব্যবহার করে সার্টিফিকেট তৈরি করুন:
openssl req -new -x509 -days 365 -nodes -out server-cert.pem -keyout server-key.pem
At-rest Encryption হল ডেটা যখন ডিস্কে সংরক্ষিত থাকে তখন তা এনক্রিপ্ট করার প্রক্রিয়া। ArangoDB-তে RocksDB স্টোরেজ ইঞ্জিন ব্যবহার করে At-rest ডেটা এনক্রিপশন সুনিশ্চিত করা যায়।
Encryption Key তৈরি করুন: একটি নিরাপদ কী তৈরি করুন:
openssl rand -base64 32 > /path/to/encryption-key
Key ফাইল নির্ধারণ করুন: ArangoDB কনফিগারেশনে কী ফাইলের পথ উল্লেখ করুন:
--rocksdb.encryption-keyfile /path/to/encryption-key
ArangoDB-তে সর্বোচ্চ সুরক্ষার জন্য উভয় এনক্রিপশন পদ্ধতি সক্রিয় করা যেতে পারে। এটি নিশ্চিত করে যে:
ArangoDB-তে In-transit এবং At-rest Encryption ব্যবহার করে ডেটার সর্বোচ্চ সুরক্ষা নিশ্চিত করা যায়। In-transit Encryption ডেটা স্থানান্তরের সময় সুরক্ষা দেয়, আর At-rest Encryption ডিস্কে ডেটা সংরক্ষণের সময় সুরক্ষা প্রদান করে। সঠিকভাবে কনফিগার করে এনক্রিপশন সক্ষম করা ডেটাবেসের নিরাপত্তা ও গুণগত মান বাড়ায়।
ArangoDB-তে Audit Logs এবং Security Best Practices ডেটাবেজের নিরাপত্তা এবং কার্যক্রম ট্র্যাকিংয়ের জন্য অপরিহার্য। Audit Logs ব্যবহার করে আপনি ডেটাবেজে প্রতিটি কার্যক্রমের রেকর্ড রাখতে পারেন, যা নিরাপত্তা নিশ্চিত এবং সমস্যার সমাধানে সহায়ক।
Audit Logs হল ArangoDB-এর এমন একটি ফিচার, যা প্রতিটি কার্যক্রমের রেকর্ড সংরক্ষণ করে। এটি নিরাপত্তা এবং সঙ্গতি নিশ্চিত করতে ব্যবহৃত হয়।
ArangoDB-তে Audit Logs সক্রিয় করতে নিচের ধাপগুলো অনুসরণ করতে হবে:
arangod
কনফিগার ফাইল সম্পাদনা:audit.json
ফাইল ব্যবহার করে লগিং সক্রিয় করুন।
{
"enabled": true,
"path": "/var/log/arangodb/audit.log",
"maxSize": 10485760,
"maxAge": 30
}
arangod --audit.enabled true --audit.output file
/var/log/arangodb/audit.log
ফাইলে সমস্ত কার্যক্রম সংরক্ষিত হয়।
ArangoDB-তে ডেটাবেজের নিরাপত্তা নিশ্চিত করতে নিম্নলিখিত Best Practices অনুসরণ করা উচিত:
Audit Logs এবং Security Best Practices ArangoDB-এর নিরাপত্তা ও কার্যক্ষমতা বজায় রাখতে গুরুত্বপূর্ণ ভূমিকা পালন করে। Audit Logs ডাটাবেজ কার্যক্রমের ট্র্যাক রাখতে সহায়তা করে এবং Security Best Practices ডেটাবেজকে আক্রমণ এবং অননুমোদিত অ্যাক্সেস থেকে সুরক্ষিত রাখে। নিয়মিত লগ পর্যালোচনা এবং সর্বশেষ সিকিউরিটি আপডেট নিশ্চিত করার মাধ্যমে আপনি ArangoDB-এর নিরাপত্তা আরও শক্তিশালী করতে পারেন।
common.read_more